package com.zenithmind.chat.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zenithmind.chat.pojo.entity.ChatMessageMedia;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 消息媒体信息Mapper接口
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Mapper
public interface ChatMessageMediaMapper extends BaseMapper<ChatMessageMedia> {

    /**
     * 根据消息ID获取媒体信息
     * 
     * @param messageId 消息ID
     * @return 媒体信息
     */
    ChatMessageMedia getByMessageId(@Param("messageId") String messageId);

    /**
     * 根据文件MD5查找重复文件
     * 
     * @param fileMd5 文件MD5
     * @return 媒体信息列表
     */
    List<ChatMessageMedia> findByFileMd5(@Param("fileMd5") String fileMd5);

    /**
     * 获取上传失败的媒体文件
     * 
     * @param limit 限制数量
     * @return 媒体信息列表
     */
    List<ChatMessageMedia> getFailedUploads(@Param("limit") Integer limit);
}
